Modernity requires computing resources to perform varying computational functions whenever and wherever there are computational requirements. Software developers and enterprises are increasingly using on-demand computing environments couched as cloud computing to satisfy such computational demands. Because different computational functions require different computing resources whose availability is dependent on location, time, or both, as well as others, identifying them can be difficult especially when computational requirements cannot be satisfied by a pre-selected computing resource provider or a set of computing resource providers.